package com.ruoyi.lock.service.impl;

import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.lock.mapper.AWechatOfficialAccountUsersMapper;
import com.ruoyi.system.domain.SysNotice;
import com.ruoyi.system.mapper.SysNoticeMapper;
import com.ruoyi.utils.WxTemplentMsg;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
public class LockSysNoticeServiceImpl implements LockSysNoticeService {
    @Autowired
    private SysNoticeMapper noticeMapper;

    @Autowired
    private WxTemplentMsg wxTemplentMsg;
    @Autowired
    private AWechatOfficialAccountUsersMapper wechatOfficialAccountUsersMapper;

    /**
     * 查询公告信息
     *
     * @param noticeId 公告ID
     * @return 公告信息
     */
    @Override
    public SysNotice selectNoticeById(Long noticeId)
    {
        return noticeMapper.selectNoticeById(noticeId);
    }

    /**
     * 查询公告列表
     *
     * @param notice 公告信息
     * @return 公告集合
     */
    @Override
    public List<SysNotice> selectNoticeList(SysNotice notice)
    {
        return noticeMapper.selectNoticeList(notice);
    }

    /**
     * 查询公告列表
     *
     * @param notice 公告信息
     * @return 公告集合
     */
    @Override
    @DataScope(deptAlias = "d")
    public List<SysNotice> selectNoticeList1(SysNotice notice)
    {
        return noticeMapper.selectNoticeList1(notice);
    }

    /**
     * 新增公告
     *
     * @param notice 公告信息
     * @return 结果
     */
    @Override
    @Transactional
    public int insertNotice(SysNotice notice)
    {
        int result = noticeMapper.insertNotice(notice);
//        if(result > 0){
//            //根据部门查询openId
//            ATenant aTenant = new ATenant();
//            aTenant.setCellid(notice.getDeptId());
//            aTenant.setIsFlag("0");
//            List<ATenant> aTenants = aTenantMapper.selectATenantList(aTenant);
//            if(notice.getNoticeType().equals("1")){//故障公告
//                for (ATenant tenant : aTenants) {
//                    AWechatOfficialAccountUsers aWechatOfficialAccountUsers = wechatOfficialAccountUsersMapper.selectAWechatOfficialAccountUsersByUniCode(tenant.getUniCode());
//                    SysError sysError = new SysError();
//                    sysError.setOpenId(aWechatOfficialAccountUsers.getOpenid());
//                    sysError.setName(tenant.getName());
//                    String localtion = tenant.getCellidName()+"-" + tenant.getLdidName()+ "-" + tenant.getLcid().toString()+"层-" + tenant.getRoomName();
//                    sysError.setLocaltion(localtion);
//                    sysError.setErrorName(notice.getNoticeTitle());
//                    //将日期转换
//                    Date now = new Date();
//                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//                    String formattedDate = sdf.format(now);
//                    sysError.setErrorTime(formattedDate);
//                    sysError.setId(notice.getNoticeId().toString());
//                    wxTemplentMsg.sysTemGuZhangTemplent(sysError);
//                }
//            }else if(notice.getNoticeType().equals("2")){//故障恢复公告
//                for (ATenant tenant : aTenants) {
//                    AWechatOfficialAccountUsers aWechatOfficialAccountUsers = wechatOfficialAccountUsersMapper.selectAWechatOfficialAccountUsersByUniCode(tenant.getUniCode());
//                    SysHuiFu sysHuiFu = new SysHuiFu();
//                    sysHuiFu.setOpenId(aWechatOfficialAccountUsers.getOpenid());
//                    sysHuiFu.setName(tenant.getName());
//                    String localtion = tenant.getCellidName()+"-" + tenant.getLdidName()+ "-" + tenant.getLcid().toString()+"层-" + tenant.getRoomName();
//                    sysHuiFu.setLocaltion(localtion);
//                    sysHuiFu.setErrorName(notice.getNoticeTitle());
//                    //将日期转换
//                    Date now = new Date();
//                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//                    String formattedDate = sdf.format(now);
//                    sysHuiFu.setHuiFuTime(formattedDate);
//                    sysHuiFu.setId(notice.getNoticeId().toString());
//                    wxTemplentMsg.sysTemErrorHuiFuTemplent(sysHuiFu);
//                }
//            }
//        }
        return result;
    }

    /**
     * 修改公告
     *
     * @param notice 公告信息
     * @return 结果
     */
    @Override
    public int updateNotice(SysNotice notice)
    {
        return noticeMapper.updateNotice(notice);
    }

    /**
     * 删除公告对象
     *
     * @param noticeId 公告ID
     * @return 结果
     */
    @Override
    public int deleteNoticeById(Long noticeId)
    {
        return noticeMapper.deleteNoticeById(noticeId);
    }

    /**
     * 批量删除公告信息
     *
     * @param noticeIds 需要删除的公告ID
     * @return 结果
     */
    @Override
    public int deleteNoticeByIds(Long[] noticeIds)
    {
        return noticeMapper.deleteNoticeByIds(noticeIds);
    }
}
